#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

typedef int SLDataType;
typedef struct SeqList
{
	SLDataType* arr;//指向动态开辟的数组
	int size;//有效数据个数
	int capacity;//顺序表容量
}SL;

//顺序表初始化
void SLInit(SL* ps);
//销毁
void SLDestroy(SL* ps);
//打印顺序表
void SLPrint(SL* ps);
//检查空间是否满
void CheckCapacity(SL* ps);
//尾插
void SLPushBack(SL* ps,SLDataType x);
//尾删
void SLPopBack(SL* ps);
//头插
void SLPushFront(SL* ps, SLDataType x);
//头删
void SLPopFront(SL* ps);
//在pos位置插入x
void SLInsert(SL* ps, int pos, SLDataType x);
//删除pos位置的值
void SLErase(SL* ps, int pos);
//查找元素x
int SLFind(SL* ps, SLDataType x);
#include<stdio.h>
#include<string.h>
#include<stdbool.h>

/*
静态顺序表：
https://blog.csdn.net/qq_46499906/article/details/105442117

*/
#define SIZE 20

typedef struct node{
        char name[SIZE];  //姓名
        char sex[SIZE];   //性别
        int age;          //年龄
}Node;
typedef struct list{
        Node elem[SIZE];  //线性表占用的数组空间
        int last;         //保存顺序表最后一个元素的下标,空表时置为-1
}List;

void InitList(List * L);
void output(const List * L);
Node GetData(const List * L,int i);
bool InsList(List * L,int i,Node node);
bool DelList(List * L,int i,Node * node);
int Locate(const List * L,const char name[]);